డేటా ట్రాన్స్ఫార్మేషన్ పైప్లైన్స్తో స్కైకిట్-లెర్న్ ప్రీప్రాసెసింగ్ శక్తిని అన్లాక్ చేయండి. సరైన మోడల్ పనితీరు కోసం బలమైన మరియు సమర్థవంతమైన మెషిన్ లెర్నింగ్ వర్క్ఫ్లోలను ఎలా నిర్మించాలో తెలుసుకోండి.
స్కైకిట్-లెర్న్ ప్రీప్రాసెసింగ్: మెషిన్ లెర్నింగ్ కోసం డేటా ట్రాన్స్ఫార్మేషన్ పైప్లైన్స్లో నైపుణ్యం
మెషిన్ లెర్నింగ్ రంగంలో, మీ డేటా నాణ్యత మీ మోడళ్ల పనితీరును నేరుగా ప్రభావితం చేస్తుంది. ముడి డేటాలో తరచుగా స్థిరత్వం లేకపోవడం, తప్పిపోయిన విలువలు మరియు విభిన్న ప్రమాణాలు ఉంటాయి, ఇది ప్రత్యక్ష ఉపయోగం కోసం అనుకూలంగా ఉండదు. స్కైకిట్-లెర్న్, ఒక శక్తివంతమైన పైథాన్ లైబ్రరీ, మీ డేటాను మెషిన్ లెర్నింగ్ అల్గారిథమ్లకు అనుకూలమైన ఫార్మాట్లోకి మార్చడానికి సమగ్రమైన ప్రీప్రాసెసింగ్ టెక్నిక్లను అందిస్తుంది. ఈ కథనం స్కైకిట్-లెర్న్ ప్రీప్రాసెసింగ్ ప్రపంచంలోకి వెళుతుంది, మీ మెషిన్ లెర్నింగ్ వర్క్ఫ్లోలను క్రమబద్ధీకరించడానికి డేటా ట్రాన్స్ఫార్మేషన్ పైప్లైన్లను సృష్టించడం మరియు ఉపయోగించడంపై దృష్టి పెడుతుంది.
డేటా ప్రీప్రాసెసింగ్ ఎందుకు కీలకం
డేటా ప్రీప్రాసెసింగ్ అనేది ముడి డేటాను శుభ్రపరచడం, మార్చడం మరియు నిర్వహించడం, తద్వారా ఇది మెషిన్ లెర్నింగ్ మోడల్లకు మరింత అనుకూలంగా ఉంటుంది. మెషిన్ లెర్నింగ్ అల్గారిథమ్లు ఇన్పుట్ ఫీచర్ల స్థాయి మరియు పంపిణీకి సున్నితంగా ఉంటాయి కాబట్టి ఇది చాలా ముఖ్యమైన దశ. సరైన ప్రీప్రాసెసింగ్ లేకుండా, మోడల్లు పేలవంగా పనిచేస్తాయి, ఇది సరికాని అంచనాలకు మరియు నమ్మదగని ఫలితాలకు దారితీస్తుంది. డేటా ప్రీప్రాసెసింగ్ అవసరానికి కొన్ని ముఖ్య కారణాలు ఇక్కడ ఉన్నాయి:
- మెరుగైన మోడల్ పనితీరు: ప్రీప్రాసెస్ చేసిన డేటా మోడల్లను మరింత ప్రభావవంతంగా నేర్చుకోవడానికి మరియు అధిక ఖచ్చితత్వాన్ని సాధించడానికి వీలు కల్పిస్తుంది.
- తప్పిపోయిన విలువలను నిర్వహించడం: ఇంప్లిమెంటేషన్ టెక్నిక్లు తప్పిపోయిన డేటా పాయింట్లను పూరిస్తాయి, అల్గారిథమ్లను క్రాష్ చేయకుండా లేదా పక్షపాత ఫలితాలను ఉత్పత్తి చేయకుండా నిరోధిస్తాయి.
- ఫీచర్ స్కేల్లను ప్రామాణీకరించడం: స్కేలింగ్ పద్ధతులు అన్ని ఫీచర్లు మోడల్కు సమానంగా దోహదం చేస్తాయని నిర్ధారిస్తాయి, పెద్ద విలువలతో ఫీచర్లు నేర్చుకునే ప్రక్రియలో ఆధిపత్యం చేయకుండా నిరోధిస్తాయి.
- వర్గీకరణ వేరియబుల్స్ను ఎన్కోడ్ చేస్తుంది: ఎన్కోడింగ్ టెక్నిక్లు వర్గీకరణ డేటాను సంఖ్యా ప్రాతినిధ్యాలుగా మారుస్తాయి, వాటిని మెషిన్ లెర్నింగ్ అల్గారిథమ్లు అర్థం చేసుకోగలవు.
- శబ్దం మరియు అవుట్లయర్లను తగ్గిస్తుంది: ప్రీప్రాసెసింగ్ అవుట్లయర్లు మరియు శబ్దపూరిత డేటా యొక్క ప్రభావాన్ని తగ్గించడంలో సహాయపడుతుంది, ఇది మరింత దృఢమైన మోడల్లకు దారితీస్తుంది.
స్కైకిట్-లెర్న్ పైప్లైన్లకు పరిచయం
స్కైకిట్-లెర్న్ పైప్లైన్లు బహుళ డేటా ట్రాన్స్ఫార్మేషన్ దశలను ఒకే, తిరిగి ఉపయోగించగల వస్తువుగా మార్చడానికి ఒక మార్గాన్ని అందిస్తాయి. ఇది మీ కోడ్ను సులభతరం చేస్తుంది, రీడబిలిటీని మెరుగుపరుస్తుంది మరియు మోడల్ మూల్యాంకనం సమయంలో డేటా లీకేజీని నివారిస్తుంది. ఒక పైప్లైన్ తప్పనిసరిగా డేటా ట్రాన్స్ఫార్మేషన్ల శ్రేణి, తరువాత తుది అంచనా (ఉదా., ఒక వర్గీకరణ లేదా రిగ్రెసర్). పైప్లైన్లు ఎందుకు చాలా ప్రయోజనకరంగా ఉన్నాయి:
- కోడ్ ఆర్గనైజేషన్: పైప్లైన్లు మొత్తం డేటా ప్రీప్రాసెసింగ్ మరియు మోడలింగ్ వర్క్ఫ్లోను ఒకే యూనిట్గా ఎన్క్యాప్సులేట్ చేస్తాయి, మీ కోడ్ను మరింత వ్యవస్థీకృతంగా మరియు నిర్వహించడం సులభం చేస్తుంది.
- డేటా లీకేజీ నివారణ: పైప్లైన్లు డేటా ట్రాన్స్ఫార్మేషన్లు శిక్షణ మరియు పరీక్ష డేటా రెండింటికీ స్థిరంగా వర్తించబడతాయని నిర్ధారిస్తాయి, డేటా లీకేజీని నివారిస్తాయి, ఇది ఓవర్ఫిట్టింగ్కు మరియు పేలవమైన సాధారణీకరణకు దారితీస్తుంది.
- సరళీకృత మోడల్ మూల్యాంకనం: మొత్తం ప్రీప్రాసెసింగ్ మరియు మోడలింగ్ వర్క్ఫ్లో ప్రతి ఫోల్డ్కు స్థిరంగా వర్తించబడుతున్నందున, క్రాస్-వ్యాలిడేషన్ వంటి పద్ధతులను ఉపయోగించి మీ మోడల్ పనితీరును మూల్యాంకనం చేయడం పైప్లైన్లు సులభతరం చేస్తాయి.
- క్రమబద్ధీకరించబడిన విస్తరణ: పైప్లైన్లను ఉత్పత్తి పరిసరాలకు సులభంగా విస్తరించవచ్చు, డేటా శిక్షణ సమయంలో వలె అదే విధంగా ప్రీప్రాసెస్ చేయబడిందని నిర్ధారిస్తుంది.
స్కైకిట్-లెర్న్లో సాధారణ డేటా ప్రీప్రాసెసింగ్ టెక్నిక్లు
స్కైకిట్-లెర్న్ విస్తృత శ్రేణి ప్రీప్రాసెసింగ్ టెక్నిక్లను అందిస్తుంది. వాటిలో చాలా సాధారణంగా ఉపయోగించేవి కొన్ని ఇక్కడ ఉన్నాయి:
1. స్కేలింగ్ మరియు సాధారణీకరణ
సంఖ్యా ఫీచర్లను ఒకే విధమైన విలువలకు మార్చడానికి స్కేలింగ్ మరియు సాధారణీకరణ పద్ధతులను ఉపయోగిస్తారు. విభిన్న స్థాయిలతో కూడిన ఫీచర్లు నేర్చుకునే ప్రక్రియను అసమానంగా ప్రభావితం చేయగలవు కాబట్టి ఇది ముఖ్యం. స్కైకిట్-లెర్న్ అనేక స్కేలింగ్ మరియు సాధారణీకరణ పద్ధతులను అందిస్తుంది:
- స్టాండర్డ్స్కేలర్: సగటును తీసివేయడం ద్వారా మరియు యూనిట్ వేరియెన్స్కు స్కేలింగ్ చేయడం ద్వారా ఫీచర్లను ప్రామాణీకరిస్తుంది. ఇది సాధారణంగా ఉపయోగించే సాంకేతికత, ఇది డేటా సాధారణ పంపిణీని అనుసరిస్తుందని ఊహిస్తుంది.
ఫార్ములా:
x_scaled = (x - mean) / standard_deviationఉదాహరణ: మీకు USDలో ఇంటి ధరలు మరియు చదరపు అడుగులు ఉన్నాయని అనుకుందాం. ఈ ఫీచర్లను స్కేలింగ్ చేయడం వలన మోడల్ పెద్ద విలువలతో ఉన్న ఫీచర్కు (ఉదా., ఇంటి ధరలు) ఎక్కువ ప్రాధాన్యత ఇవ్వదు.
- మిన్మాక్స్స్కేలర్: ఫీచర్లను నిర్దిష్ట పరిధికి స్కేల్ చేస్తుంది, సాధారణంగా 0 మరియు 1 మధ్య. మీరు డేటా యొక్క అసలు పంపిణీని భద్రపరచాలనుకున్నప్పుడు ఇది ఉపయోగపడుతుంది.
ఫార్ములా:
x_scaled = (x - min) / (max - min)ఉదాహరణ: ఇమేజ్ ప్రాసెసింగ్ తరచుగా పిక్సెల్ విలువలను [0, 1] పరిధికి సాధారణీకరించడానికి మిన్మాక్స్స్కేలర్ను ఉపయోగిస్తుంది.
- రోబస్ట్స్కేలర్: మధ్యస్థ మరియు ఇంటర్క్వార్టైల్ పరిధి (IQR) వంటి అవుట్లయర్లకు దృఢంగా ఉండే గణాంకాలను ఉపయోగించి ఫీచర్లను స్కేల్ చేస్తుంది. మీ డేటాలో అవుట్లయర్లు ఉన్నప్పుడు ఇది మంచి ఎంపిక.
ఫార్ములా:
x_scaled = (x - median) / IQRఉదాహరణ: ఆర్థిక డేటాసెట్లలో, అవుట్లయర్లు సాధారణం (ఉదా., విపరీతమైన స్టాక్ మార్కెట్ హెచ్చుతగ్గులు), రోబస్ట్స్కేలర్ మరింత స్థిరమైన ఫలితాలను అందించగలదు.
- సాధారణీకరణ: నమూనాలను వ్యక్తిగతంగా యూనిట్ నార్మ్కు సాధారణీకరిస్తుంది. వ్యక్తిగత ఫీచర్ విలువలను కంటే ఫీచర్ వెక్టర్ యొక్క పరిమాణం చాలా ముఖ్యమైనది అయినప్పుడు ఇది ఉపయోగపడుతుంది.
ఫార్ములా (L2 నార్మ్):
x_scaled = x / ||x||ఉదాహరణ: టెక్స్ట్ ప్రాసెసింగ్లో, టర్మ్ ఫ్రీక్వెన్సీ-ఇన్వర్స్ డాక్యుమెంట్ ఫ్రీక్వెన్సీ (TF-IDF) వెక్టర్లను సాధారణీకరించడం ఒక సాధారణ పద్ధతి.
2. వర్గీకరణ వేరియబుల్స్ను ఎన్కోడ్ చేయడం
మెషిన్ లెర్నింగ్ అల్గారిథమ్లకు సాధారణంగా సంఖ్యా ఇన్పుట్ అవసరం, కాబట్టి వర్గీకరణ వేరియబుల్స్ను సంఖ్యా ప్రాతినిధ్యాలుగా మార్చాలి. స్కైకిట్-లెర్న్ అనేక ఎన్కోడింగ్ టెక్నిక్లను అందిస్తుంది:
- వన్హాట్ఎన్కోడర్: ఫీచర్లోని ప్రతి వర్గం కోసం బైనరీ నిలువు వరుసలను సృష్టిస్తుంది. ఇది నామమాత్రపు వర్గీకరణ ఫీచర్లకు అనుకూలంగా ఉంటుంది (అంతర్గత క్రమం లేని ఫీచర్లు).
ఉదాహరణ: "USA," "కెనడా," మరియు "UK" వంటి విలువలతో "దేశం" ఫీచర్ను ఎన్కోడింగ్ చేయడం వలన మూడు కొత్త నిలువు వరుసలు సృష్టించబడతాయి: "దేశం_USA," "దేశం_కెనడా," మరియు "దేశం_UK."
- ఆర్డినల్ఎన్కోడర్: దాని క్రమం ఆధారంగా ప్రతి వర్గానికి ఒక పూర్ణాంక విలువను కేటాయిస్తుంది. ఇది ఆర్డినల్ వర్గీకరణ ఫీచర్లకు (అర్థవంతమైన క్రమం కలిగిన ఫీచర్లు) తగినది.
ఉదాహరణ: "హై స్కూల్," "బ్యాచిలర్స్," మరియు "మాస్టర్స్" వంటి విలువలతో "విద్య స్థాయి" ఫీచర్ను ఎన్కోడింగ్ చేయడం వలన వరుసగా 0, 1 మరియు 2 వంటి పూర్ణాంక విలువలను కేటాయిస్తుంది.
- లేబుల్ఎన్కోడర్: 0 మరియు n_classes-1 మధ్య విలువల ద్వారా లక్ష్య లేబుల్లను ఎన్కోడ్ చేస్తుంది. వర్గీకరణ సమస్యలలో లక్ష్య వేరియబుల్ను ఎన్కోడ్ చేయడానికి దీన్ని ఉపయోగించండి.
ఉదాహరణ: "స్పామ్" మరియు "స్పామ్ కాదు" లేబుల్లను వరుసగా 0 మరియు 1గా ఎన్కోడ్ చేయడం.
- టార్గెట్ఎన్కోడర్ (category_encoders లైబ్రరీ అవసరం): ప్రతి వర్గం కోసం లక్ష్య వేరియబుల్ యొక్క సగటు ఆధారంగా వర్గీకరణ ఫీచర్లను ఎన్కోడ్ చేస్తుంది. క్రాస్-వ్యాలిడేషన్ సెటప్లో జాగ్రత్తగా ఉపయోగించకపోతే లక్ష్య లీకేజీకి దారితీయవచ్చు.
3. తప్పిపోయిన విలువలను నిర్వహించడం
నిజ-ప్రపంచ డేటాసెట్లలో తప్పిపోయిన విలువలు ఒక సాధారణ సమస్య. స్కైకిట్-లెర్న్ తప్పిపోయిన విలువలను పూరించడానికి (నింపడానికి) టెక్నిక్లను అందిస్తుంది:
- సింపుల్ఇంప్యూటర్: స్థిరమైన విలువ, సగటు, మధ్యస్థ లేదా ఫీచర్ యొక్క అత్యంత సాధారణ విలువను ఉపయోగించి తప్పిపోయిన విలువలను పూరిస్తుంది.
- KNNఇంప్యూటర్: k-సమీప పొరుగు అల్గారిథమ్ను ఉపయోగించి తప్పిపోయిన విలువలను పూరిస్తుంది. ఇది తప్పిపోయిన విలువలతో నమూనాకు k సమీప నమూనాలను కనుగొంటుంది మరియు తప్పిపోయిన విలువను పూరించడానికి ఆ పొరుగువారి సగటు విలువను ఉపయోగిస్తుంది.
- ఇటరేటివ్ఇంప్యూటర్: ఇటరేటివ్ మోడలింగ్ విధానాన్ని ఉపయోగించి తప్పిపోయిన విలువలను పూరిస్తుంది. తప్పిపోయిన విలువలతో ఉన్న ప్రతి ఫీచర్ ఇతర ఫీచర్ల ఫంక్షన్గా రూపొందించబడింది మరియు తప్పిపోయిన విలువలు ఇటరేటివ్గా అంచనా వేయబడతాయి.
4. ఫీచర్ ట్రాన్స్ఫార్మేషన్
ఫీచర్ ట్రాన్స్ఫార్మేషన్లో ఇప్పటికే ఉన్న వాటి నుండి కొత్త ఫీచర్లను సృష్టించడం ఉంటుంది. ఇది నాన్-లీనియర్ సంబంధాలను లేదా ఫీచర్ల మధ్య పరస్పర చర్యలను సంగ్రహించడం ద్వారా మోడల్ పనితీరును మెరుగుపరుస్తుంది. కొన్ని టెక్నిక్లు ఉన్నాయి:
- పాలినోమియల్ఫీచర్స్: ఫీచర్ల పాలినోమియల్ కలయికలను ఉత్పత్తి చేస్తుంది. ఉదాహరణకు, మీకు x1 మరియు x2 అనే రెండు ఫీచర్లు ఉంటే, పాలినోమియల్ఫీచర్స్ x1^2, x2^2, x1*x2 వంటి కొత్త ఫీచర్లను సృష్టించగలవు.
- ఫంక్షన్ట్రాన్స్ఫార్మర్: ఫీచర్లకు అనుకూలీకరించిన ఫంక్షన్ను వర్తింపజేస్తుంది. ఇది లాగ్ ట్రాన్స్ఫార్మేషన్లు లేదా ఎక్స్పోనెన్షియల్ ట్రాన్స్ఫార్మేషన్లు వంటి ఏకపక్ష ట్రాన్స్ఫార్మేషన్లను చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.
- పవర్ట్రాన్స్ఫార్మర్: డేటాను మరింత గాస్సియన్ లాగా చేయడానికి పవర్ ట్రాన్స్ఫార్మ్ను వర్తింపజేస్తుంది. ఇది లీనియర్ రిగ్రెషన్ వంటి సాధారణతను ఊహించే అల్గారిథమ్లకు ఉపయోగపడుతుంది. (బాక్స్-కాక్స్ మరియు యో-జాన్సన్ ట్రాన్స్ఫార్మ్లను కలిగి ఉంటుంది)
స్కైకిట్-లెర్న్తో డేటా ట్రాన్స్ఫార్మేషన్ పైప్లైన్లను నిర్మించడం
ఇప్పుడు, ఈ ప్రీప్రాసెసింగ్ టెక్నిక్లను డేటా ట్రాన్స్ఫార్మేషన్ పైప్లైన్లను నిర్మించడం ద్వారా ఆచరణలో పెడదాం. ఇక్కడ ఒక దశల వారీ మార్గదర్శకం ఉంది:
1. అవసరమైన లైబ్రరీలను దిగుమతి చేయండి
స్కైకిట్-లెర్న్ నుండి అవసరమైన లైబ్రరీలను దిగుమతి చేయడం ద్వారా ప్రారంభించండి:
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler, OneHotEncoder, SimpleImputer
from sklearn.compose import ColumnTransformer
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
import pandas as pd
2. మీ డేటాను లోడ్ చేసి, సిద్ధం చేయండి
పాండాస్ లేదా ఏదైనా ఇతర తగిన పద్ధతిని ఉపయోగించి మీ డేటాసెట్ను లోడ్ చేయండి. మీ డేటాసెట్లోని సంఖ్యా మరియు వర్గీకరణ ఫీచర్లను గుర్తించండి. ఉదాహరణకు:
data = {
'age': [25, 30, 35, 40, 45, None],
'country': ['USA', 'Canada', 'USA', 'UK', 'Canada', 'USA'],
'salary': [50000, 60000, 70000, 80000, 90000, 55000],
'purchased': [0, 1, 0, 1, 0, 1]
}
df = pd.DataFrame(data)
3. ప్రీప్రాసెసింగ్ దశలను నిర్వచించండి
మీరు ఉపయోగించాలనుకుంటున్న ప్రీప్రాసెసింగ్ ట్రాన్స్ఫార్మర్ల ఉదాహరణలను సృష్టించండి. ఉదాహరణకు, సంఖ్యా ఫీచర్లను నిర్వహించడానికి, మీరు StandardScaler మరియు SimpleImputerని ఉపయోగించవచ్చు. వర్గీకరణ ఫీచర్ల కోసం, మీరు OneHotEncoderని ఉపయోగించవచ్చు. స్కేలింగ్ లేదా ఎన్కోడింగ్ చేయడానికి ముందు తప్పిపోయిన విలువలను నిర్వహించడానికి వ్యూహాలను చేర్చడాన్ని పరిగణించండి.
numerical_features = ['age', 'salary']
categorical_features = ['country']
numerical_transformer = Pipeline(steps=[
('imputer', SimpleImputer(strategy='mean')),
('scaler', StandardScaler())
])
categorical_transformer = Pipeline(steps=[
('onehot', OneHotEncoder(handle_unknown='ignore'))
])
4. కాలమ్ట్రాన్స్ఫార్మర్ను సృష్టించండి
మీ డేటా యొక్క వేర్వేరు నిలువు వరుసలకు వేర్వేరు ట్రాన్స్ఫార్మర్లను వర్తింపజేయడానికి ColumnTransformerని ఉపయోగించండి. ఇది సంఖ్యా మరియు వర్గీకరణ ఫీచర్లను విడిగా ప్రీప్రాసెస్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.
preprocessor = ColumnTransformer(
transformers=[
('num', numerical_transformer, numerical_features),
('cat', categorical_transformer, categorical_features)
])
5. పైప్లైన్ను నిర్మించండి
మెషిన్ లెర్నింగ్ మోడల్తో ప్రీప్రాసెసింగ్ దశలను కలిపే Pipeline వస్తువును సృష్టించండి. ఇది మోడల్కు ఫీడ్ చేయడానికి ముందు డేటా స్థిరంగా ప్రీప్రాసెస్ చేయబడిందని నిర్ధారిస్తుంది.
pipeline = Pipeline(steps=[('preprocessor', preprocessor),
('classifier', LogisticRegression())])
6. మోడల్ను శిక్షణ ఇవ్వండి మరియు మూల్యాంకనం చేయండి
మీ డేటాను శిక్షణ మరియు పరీక్ష సెట్లుగా విభజించండి. ఆపై, శిక్షణ డేటాపై పైప్లైన్కు శిక్షణ ఇవ్వండి మరియు పరీక్ష డేటాపై దాని పనితీరును మూల్యాంకనం చేయండి.
X = df.drop('purchased', axis=1)
y = df['purchased']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
pipeline.fit(X_train, y_train)
score = pipeline.score(X_test, y_test)
print(f'Model accuracy: {score}')
పూర్తి ఉదాహరణ కోడ్
డేటా ట్రాన్స్ఫార్మేషన్ పైప్లైన్ను నిర్మించడానికి మరియు శిక్షణ ఇవ్వడానికి ఇక్కడ పూర్తి కోడ్ ఉంది:
import pandas as pd
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler, OneHotEncoder, SimpleImputer
from sklearn.compose import ColumnTransformer
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
# Sample Data
data = {
'age': [25, 30, 35, 40, 45, None],
'country': ['USA', 'Canada', 'USA', 'UK', 'Canada', 'USA'],
'salary': [50000, 60000, 70000, 80000, 90000, 55000],
'purchased': [0, 1, 0, 1, 0, 1]
}
df = pd.DataFrame(data)
# Define features
numerical_features = ['age', 'salary']
categorical_features = ['country']
# Create transformers
numerical_transformer = Pipeline(steps=[
('imputer', SimpleImputer(strategy='mean')),
('scaler', StandardScaler())
])
categorical_transformer = Pipeline(steps=[
('onehot', OneHotEncoder(handle_unknown='ignore'))
])
# Create preprocessor
preprocessor = ColumnTransformer(
transformers=[
('num', numerical_transformer, numerical_features),
('cat', categorical_transformer, categorical_features)
])
# Create pipeline
pipeline = Pipeline(steps=[('preprocessor', preprocessor),
('classifier', LogisticRegression())])
# Split data
X = df.drop('purchased', axis=1)
y = df['purchased']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Train model
pipeline.fit(X_train, y_train)
# Evaluate model
score = pipeline.score(X_test, y_test)
print(f'Model accuracy: {score}')
అధునాతన పైప్లైన్ టెక్నిక్లు
మీరు ప్రాథమిక అంశాలతో సౌకర్యవంతంగా ఉన్న తర్వాత, మీరు మరింత అధునాతన పైప్లైన్ టెక్నిక్లను అన్వేషించవచ్చు:
1. అనుకూల ట్రాన్స్ఫార్మర్లు
స్కైకిట్-లెర్న్లో అందుబాటులో లేని నిర్దిష్ట డేటా ట్రాన్స్ఫార్మేషన్లను నిర్వహించడానికి మీరు మీ స్వంత అనుకూల ట్రాన్స్ఫార్మర్లను సృష్టించవచ్చు. అనుకూల ట్రాన్స్ఫార్మర్ను సృష్టించడానికి, మీరు TransformerMixin మరియు BaseEstimator తరగతుల నుండి వారసత్వంగా పొందాలి మరియు fit మరియు transform పద్ధతులను అమలు చేయాలి. ఫీచర్ ఇంజనీరింగ్ లేదా డొమైన్-నిర్దిష్ట ట్రాన్స్ఫార్మేషన్ల కోసం ఇది ఉపయోగకరంగా ఉంటుంది. రీడబిలిటీ కోసం తగిన డాక్స్ట్రింగ్లను చేర్చడం గుర్తుంచుకోండి.
2. ఫీచర్ యూనియన్
బహుళ ట్రాన్స్ఫార్మర్ల అవుట్పుట్ను ఒకే ఫీచర్ వెక్టర్గా కలపడానికి ఫీచర్ యూనియన్ మిమ్మల్ని అనుమతిస్తుంది. మీరు ఒకే ఫీచర్లకు విభిన్న ట్రాన్స్ఫార్మేషన్లను వర్తింపజేయాలనుకున్నప్పుడు లేదా విభిన్న మార్గాల్లో రూపాంతరం చెందిన ఫీచర్లను కలపాలనుకున్నప్పుడు ఇది ఉపయోగకరంగా ఉంటుంది. బహుళ ట్రాన్స్ఫార్మర్ల అవుట్పుట్ను ఒకే ఫీచర్ వెక్టర్గా కలపడానికి FeatureUnion తరగతి ఉపయోగించబడుతుంది.
3. పైప్లైన్లతో గ్రిడ్ శోధన
ప్రీప్రాసెసింగ్ దశల యొక్క హైపర్పారామీటర్లతో సహా మీ పైప్లైన్ యొక్క హైపర్పారామీటర్లను ఆప్టిమైజ్ చేయడానికి మీరు GridSearchCVని ఉపయోగించవచ్చు. ఇది ప్రీప్రాసెసింగ్ టెక్నిక్లు మరియు మోడల్ పారామితుల యొక్క ఉత్తమ కలయికను స్వయంచాలకంగా కనుగొనడానికి మిమ్మల్ని అనుమతిస్తుంది. పెరిగిన గణన ఖర్చు గురించి జాగ్రత్తగా ఉండండి.
డేటా ప్రీప్రాసెసింగ్ పైప్లైన్ల కోసం ఉత్తమ పద్ధతులు
డేటా ప్రీప్రాసెసింగ్ పైప్లైన్లను నిర్మించేటప్పుడు గుర్తుంచుకోవలసిన కొన్ని ఉత్తమ పద్ధతులు ఇక్కడ ఉన్నాయి:
- మీ డేటాను అర్థం చేసుకోండి: ఏదైనా ప్రీప్రాసెసింగ్ టెక్నిక్లను వర్తింపజేసే ముందు, మీ డేటాను అర్థం చేసుకోవడానికి సమయం కేటాయించండి. మీ ఫీచర్ల పంపిణీలను అన్వేషించండి, తప్పిపోయిన విలువలను గుర్తించండి మరియు అవుట్లయర్ల కోసం చూడండి.
- మీ పైప్లైన్ను డాక్యుమెంట్ చేయండి: పైప్లైన్ యొక్క ప్రతి దశను వివరించడానికి మీ కోడ్కు వ్యాఖ్యలను జోడించండి. ఇది మీ కోడ్ను అర్థం చేసుకోవడం మరియు నిర్వహించడం సులభతరం చేస్తుంది.
- మీ పైప్లైన్ను పరీక్షించండి: మీ పైప్లైన్ సరిగ్గా పనిచేస్తుందో లేదో నిర్ధారించుకోవడానికి దానిని పూర్తిగా పరీక్షించండి. పైప్లైన్ యొక్క ప్రతి దశ ఆశించిన అవుట్పుట్ను ఉత్పత్తి చేస్తుందో లేదో ధృవీకరించడానికి యూనిట్ పరీక్షలను ఉపయోగించండి.
- డేటా లీకేజీని నివారించండి: మీ డేటాను ప్రీప్రాసెస్ చేసేటప్పుడు డేటా లీకేజీని నివారించడానికి జాగ్రత్త వహించండి. శిక్షణ డేటాను ప్రీప్రాసెస్ చేయడానికి మీరు శిక్షణ డేటా నుండి మాత్రమే సమాచారాన్ని ఉపయోగిస్తున్నారని నిర్ధారించుకోండి. శిక్షణ మరియు పరీక్ష డేటా మధ్య స్థిరత్వాన్ని నిర్ధారించడానికి పైప్లైన్లను ఉపయోగించండి.
- పనితీరును పర్యవేక్షించండి: కాలానుగుణంగా మీ మోడల్ పనితీరును పర్యవేక్షించండి మరియు అవసరమైనప్పుడు దాన్ని తిరిగి శిక్షణ ఇవ్వండి. డేటా పంపిణీలు కాలానుగుణంగా మారవచ్చు, కాబట్టి మీ పైప్లైన్ను క్రమానుగతంగా తిరిగి మూల్యాంకనం చేయడం మరియు అవసరమైన విధంగా సర్దుబాట్లు చేయడం ముఖ్యం.
నిజ-ప్రపంచ ఉదాహరణలు
డేటా ట్రాన్స్ఫార్మేషన్ పైప్లైన్లను వివిధ పరిశ్రమలలో ఎలా ఉపయోగించవచ్చో కొన్ని నిజ-ప్రపంచ ఉదాహరణలను అన్వేషిద్దాం:
- ఫైనాన్స్: క్రెడిట్ రిస్క్ మోడలింగ్లో, ఆదాయం మరియు క్రెడిట్ స్కోర్ వంటి సంఖ్యా ఫీచర్లు, అలాగే ఉద్యోగ స్థితి మరియు రుణం యొక్క ఉద్దేశ్యం వంటి వర్గీకరణ ఫీచర్లతో సహా కస్టమర్ డేటాను ప్రీప్రాసెస్ చేయడానికి పైప్లైన్లను ఉపయోగించవచ్చు. సగటు ఇంప్యూటేషన్ లేదా k-సమీప పొరుగు ఇంప్యూటేషన్ వంటి పద్ధతులను ఉపయోగించి తప్పిపోయిన విలువలను పూరించవచ్చు. విభిన్న స్థాయిలతో కూడిన ఫీచర్లు మోడల్పై ఆధిపత్యం చెలాయించకుండా నిరోధించడానికి స్కేలింగ్ చాలా కీలకం.
- హెల్త్కేర్: వైద్య నిర్ధారణలో, వయస్సు, రక్తపోటు మరియు కొలెస్ట్రాల్ స్థాయిలు వంటి సంఖ్యా ఫీచర్లు, అలాగే లింగం మరియు వైద్య చరిత్ర వంటి వర్గీకరణ ఫీచర్లతో సహా రోగి డేటాను ప్రీప్రాసెస్ చేయడానికి పైప్లైన్లను ఉపయోగించవచ్చు. వర్గీకరణ ఫీచర్లను సంఖ్యా ప్రాతినిధ్యాలుగా మార్చడానికి వన్-హాట్ ఎన్కోడింగ్ను ఉపయోగించవచ్చు.
- ఇ-కామర్స్: ఉత్పత్తి సిఫార్సు వ్యవస్థలలో, కొనుగోలు ఫ్రీక్వెన్సీ మరియు ఉత్పత్తి రేటింగ్లు వంటి సంఖ్యా ఫీచర్లు, అలాగే ఉత్పత్తి వర్గం మరియు కస్టమర్ జనాభా వంటి వర్గీకరణ ఫీచర్లతో సహా కస్టమర్ మరియు ఉత్పత్తి డేటాను ప్రీప్రాసెస్ చేయడానికి పైప్లైన్లను ఉపయోగించవచ్చు. ఉత్పత్తి వివరణలు మరియు కస్టమర్ సమీక్షల నుండి ఫీచర్లను సంగ్రహించడానికి పైప్లైన్లలో టోకనైజేషన్ మరియు స్టెమ్మింగ్ వంటి వచన ప్రీప్రాసెసింగ్ కోసం దశలు ఉంటాయి.
- తయారీ: ప్రిడిక్టివ్ నిర్వహణలో, ఉష్ణోగ్రత, పీడనం మరియు వైబ్రేషన్ వంటి సంఖ్యా ఫీచర్లు, అలాగే యంత్ర రకం మరియు ఆపరేటింగ్ పరిస్థితులు వంటి వర్గీకరణ ఫీచర్లతో సహా యంత్రాల నుండి సెన్సార్ డేటాను ప్రీప్రాసెస్ చేయడానికి పైప్లైన్లను ఉపయోగించవచ్చు. అవుట్లయర్ రీడింగ్లకు అవకాశం ఉన్నందున రోబస్ట్స్కేలర్ ఇక్కడ చాలా ఉపయోగకరంగా ఉంటుంది.
గ్లోబల్ డేటాసెట్లలో సవాళ్లను పరిష్కరించడం
గ్లోబల్ డేటాసెట్లతో పనిచేసేటప్పుడు, మీరు తరచుగా ప్రీప్రాసెసింగ్ సమయంలో జాగ్రత్తగా పరిశీలించాల్సిన నిర్దిష్ట సవాళ్లను ఎదుర్కొంటారు. కొన్ని సాధారణ సమస్యలు మరియు వాటిని పరిష్కరించడానికి వ్యూహాలు ఇక్కడ ఉన్నాయి:
- విభిన్న డేటా ఫార్మాట్లు: తేదీలు, సంఖ్యలు మరియు కరెన్సీలు ప్రాంతాల వారీగా వేర్వేరు ఫార్మాట్లను కలిగి ఉండవచ్చు. స్థిరమైన పార్సింగ్ మరియు ఫార్మాటింగ్ను నిర్ధారించండి. ఉదాహరణకు, తేదీలు DD/MM/YYYY లేదా MM/DD/YYYY ఫార్మాట్లో ఉండవచ్చు. తేదీ మార్పిడులు మరియు ఫార్మాటింగ్ను నిర్వహించడానికి తగిన లైబ్రరీలను ఉపయోగించండి.
- భాషా తేడాలు: వచన డేటా వివిధ భాషలలో ఉండవచ్చు, దీనికి అనువాదం లేదా భాషా-నిర్దిష్ట ప్రీప్రాసెసింగ్ టెక్నిక్లు అవసరం. అనువాదం కోసం Google అనువాద API వంటి లైబ్రరీలను పరిగణించండి (తగిన వినియోగ పరిగణనలు మరియు ఖర్చు సూచనలతో) లేదా భాషా-నిర్దిష్ట వచన ప్రాసెసింగ్ కోసం NLTKని ఉపయోగించండి.
- కరెన్సీ మార్పిడి: ఆర్థిక డేటా వివిధ కరెన్సీలలో ఉండవచ్చు. నవీనమైన మారకపు రేట్లను ఉపయోగించి అన్ని విలువలను సాధారణ కరెన్సీగా మార్చండి. ఖచ్చితమైన మరియు నిజ-సమయ మారకపు రేట్లను పొందడానికి నమ్మకమైన APIలను ఉపయోగించండి.
- టైమ్ జోన్లు: టైమ్-సిరీస్ డేటా వేర్వేరు టైమ్ జోన్లలో రికార్డ్ చేయబడవచ్చు. స్థిరత్వాన్ని నిర్ధారించడానికి అన్ని టైమ్స్టాంప్లను సాధారణ టైమ్ జోన్కు (ఉదా., UTC) మార్చండి. టైమ్ జోన్ మార్పిడులను నిర్వహించడానికి pytz వంటి లైబ్రరీలను ఉపయోగించండి.
- సాంస్కృతిక వ్యత్యాసాలు: సాంస్కృతిక సూక్ష్మ నైపుణ్యాలు డేటా వివరణను ప్రభావితం చేస్తాయి. ఉదాహరణకు, కస్టమర్ సంతృప్తి స్కోర్లను సంస్కృతుల వారీగా భిన్నంగా అర్థం చేసుకోవచ్చు. ఈ సూక్ష్మ నైపుణ్యాల గురించి తెలుసుకోండి మరియు మీ ప్రీప్రాసెసింగ్ దశలను రూపొందించేటప్పుడు వాటిని పరిగణించండి.
- డేటా నాణ్యత సమస్యలు: వివిధ మూలాల మధ్య డేటా నాణ్యత గణనీయంగా మారవచ్చు. లోపాలను గుర్తించడానికి మరియు సరిచేయడానికి బలమైన డేటా ధ్రువీకరణ మరియు శుభ్రపరిచే విధానాలను అమలు చేయండి.
ముగింపు
డేటా ప్రీప్రాసెసింగ్ అనేది మెషిన్ లెర్నింగ్ పైప్లైన్లో ఒక కీలకమైన దశ. స్కైకిట్-లెర్న్ పైప్లైన్లను ఉపయోగించడం ద్వారా, మీరు మీ వర్క్ఫ్లోను క్రమబద్ధీకరించవచ్చు, డేటా లీకేజీని నివారించవచ్చు మరియు మీ మోడళ్ల పనితీరును మెరుగుపరచవచ్చు. ఈ టెక్నిక్లను నేర్చుకోవడం వలన విస్తృత శ్రేణి అనువర్తనాల కోసం మరింత దృఢమైన మరియు నమ్మదగిన మెషిన్ లెర్నింగ్ పరిష్కారాలను రూపొందించడానికి మిమ్మల్ని శక్తివంతం చేస్తుంది. మీ డేటా యొక్క నిర్దిష్ట లక్షణాలకు మరియు మీ మెషిన్ లెర్నింగ్ మోడల్ యొక్క అవసరాలకు ప్రీప్రాసెసింగ్ దశలను స్వీకరించాలని గుర్తుంచుకోండి. మీ నిర్దిష్ట సమస్య కోసం సరైన కలయికను కనుగొనడానికి వివిధ టెక్నిక్లతో ప్రయోగాలు చేయండి. సరైన డేటా ప్రీప్రాసెసింగ్లో సమయాన్ని వెచ్చించడం ద్వారా, మీరు మీ మెషిన్ లెర్నింగ్ అల్గారిథమ్ల యొక్క పూర్తి సామర్థ్యాన్ని అన్లాక్ చేయవచ్చు మరియు ఉన్నతమైన ఫలితాలను సాధించవచ్చు.